package com.youlu.campus.activity.service;

import com.youlu.campus.activity.entity.UserLotteryRecord;
import com.youlu.campus.activity.entity.UserLotteryRecordExcel;
import com.youlu.campus.activity.entity.UserLotteryRecordQueryVo;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 用户抽奖记录服务接口
 */
public interface UserLotteryRecordService {

    /**
     * 分页查询 用户记录
     *
     * @param paramVo
     * @return
     */
    Page<UserLotteryRecord> findByPage(UserLotteryRecordQueryVo paramVo);

    /**
     * 添加抽奖记录
     *
     * @param record 抽奖记录信息
     */
    UserLotteryRecord addRecord(UserLotteryRecord record);

    /**
     * 保存奖品记录
     *
     * @param userLotteryRecord
     * @return
     */
    void save(UserLotteryRecord userLotteryRecord);

    /**
     * 更新奖品领取状态
     *
     * @param recordId 记录ID
     * @param status   状态：0-未领取，1-已领取，2-已过期
     */
    void updateRecordStatus(String recordId, Integer status);

    /**
     * 通过活动id 与用户id 查询奖品记录
     *
     * @param userId
     * @param paramVo
     * @return
     */
    Page<UserLotteryRecord> findListByActivityIdAndUserId(String userId, UserLotteryRecordQueryVo paramVo);

    /**
     * 查询最新奖品记录
     *
     * @param paramVo
     * @return
     */
    List<UserLotteryRecord> findNew(String activityId);

    /**
     * 系统导入奖品记录
     *
     * @param excelDataList
     */
    void importSystem(List<UserLotteryRecordExcel> excelDataList);

    /**
     * 通过ID查询奖品记录
     *
     * @param recordId
     * @return
     */
    UserLotteryRecord findById(String recordId);

    /**
     * 删除奖品记录
     *
     * @param id
     * @return
     */
    void deleteById(String id);
}
    